1. Field
Embodiments of the invention relate to the field of subscriber session setup; and more specifically, to dynamically adjusting the number of connection setup request packets accepted and processed by a network element.
2. Background
Network elements establish sessions with subscribers for different protocols (e.g., point-to-point (PPP), PPP over Ethernet (PPPoE), Layer 2 Tunneling Protocol (L2TP), CLIPS (Clientless IP), DHCP (Dynamic Host Configuration Protocol), VoIP (Voice over IP), etc. Sessions are established through a handshake protocol with the subscriber. Typically, external subscribers initiate new sessions by transmitting connection setup request packets to the network element. These request packets are received by the linecards in the network element and directed to a control card for further processing. These request packets will be enqueued on the control card. Network elements typically deploy a connection setup request throttling mechanism to limit the number of requests that the linecards can direct to the control card. In the absence of any connection setup request throttling mechanisms, the queues in the control card can grow at a much faster rate than the rate they can be processed by the processor of the control card. If the network element does not respond within a certain amount of time (typically defined by the particular protocol), the requests will time out and additional connection setup request packets will be transmitted.
The control card may program hard coded connection setup request throttling parameters such as a hard coded rate value and a hard coded burst value to each of the linecards which represent the maximum rate and burst of packets a particular linecard can direct to the control card. These values may be configurable by system operators of the network element and may be different for each protocol. These values can be chosen based on average performance expected, worst case scenario, best case scenario, etc. If the worst case is assumed, the processor in the control card is typically underutilized. If the best case is assumed, the processor in the control card may not be able to process the requests at the rate they are arriving which will lead to large queues and increased latencies and can lead to a trashing condition (e.g., as the control card becomes more overloaded, the queues will grow which can cause the connection requests to timeout, causing the subscribers to retry (submit additional connection requests) which further increases the load on the control card).
If the network element processes multiple types of requests, different processes may handle the different request types with each type of request typically requiring a different amount of resources for their successful establishment. The requests also will be competing with each other for processing by the processor in the control card.